home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Very Best of Atari Inside
/
The Very Best of Atari Inside 1.iso
/
mint
/
mintmant
/
psetlimi.txt
< prev
next >
Wrap
Text File
|
1992-03-24
|
3KB
|
130 lines
Psetlimit(2) Oct. 1, 1991 Psetlimit(2)
NAME
Psetlimit - get or set limits on use of system resources
SYNOPSIS
LONG Psetlimit( WORD lim, LONG value );
DESCRIPTION
Psetlimit gets or sets a resource limit for a process. Which
limit is affected is governed by the value of lim, as fol-
lows:
1: get/set maximum CPU time for process (in milliseconds)
2: get/set total maximum memory allowed for process
3: get/set limit on Malloc'd memory for process
If value is negative, the limit is unchanged; if value is 0,
the corresponding resource is unlimited; otherwise, the
resource limit is set to value.
Setting the "maximum memory" limit means the process is not
allowed to grow bigger than that size overall. Setting the
"maximum Malloc'ed" limit means that the process may allo-
cate no more than that much memory. The difference is that
the latter limit applies above and beyond the text+data+bss
size of the process.
Using Psetlimit sets the corresponding limit for both the
process and any children it creates thereafter. Note that
the limits apply to each process individually; setting the
child CPU limit value to 1000 and then using fork(2) to
create three children results in each of those children get-
ting a CPU limit value of one second. They do not have a
collective or sum total limit of one second.
There is no restriction on increasing a limit. Any process
may set any of its limits or its childrens' limits to a
value greater than its current limit, or even to zero
(unlimited).
Memory limits do not apply during execution of Pexec; that
is, if a process is limited to (say) 256KB of memory, it can
still exec a child which uses more
Memory limits are not retroactive: if a process owns 256KB
of memory and then calls Psetlimit to restrict itself to
128KB, it will not be terminated, but no Malloc calls will
succeed until its size drops below 128KB.
Version 0.9 Last change: MiNT Programmer's Manual 1
Psetlimit(2) Oct. 1, 1991 Psetlimit(2)
CPU limits are retroactive, however: if a process has used
three CPU seconds and calls Psetlimit to restrict itself to
one second, it will immediately receive SIGXCPU and ter-
minate.
RETURNS
The old limit (0 if there was no limit).
BUGS
Since the limit applies to the process and its children, you
can't limit a child to, say, one millisecond of CPU time:
the parent must necessarily limit itself before creating the
child, and if it has used more than a millisecond itself, it
will die with SIGXCPU. A new set of lim arguments is needed
that apply to the caller's future children without applying
to the caller.
To alleviate this, the parent must create a child process
via Pvfork, and this process (which hasn't consumed any CPU
time yet) must call Psetlimit and then Pexec to create the
child that is meant to be limited.
SEE ALSO
Prusage(2)
Version 0.9 Last change: MiNT Programmer's Manual 2